The Internet is a vast collection of computing resources, interconnected as a network, from sites around the world. It is used every day by millions of people. The World Wide Web (referred to herein as the “Web”) is that portion of the Internet that uses the HyperText Transfer Protocol (HTTP) as a protocol for exchanging messages. Alternatively, the HTTPS protocol can be used, where this protocol is a security-enhanced version of HTTP.
The user working in a Web environment will have software running on his or her computer to allow him or her to create and send requests for information, and to see the results. These functions are typically combined in a software package that is referred to as a “Web browser”, or “browser”. After the user has created a request using the browser, the request message is sent out into the Internet for processing. The target of the request message is one of the interconnected computers in the Internet network. That computer will receive the message, attempt to find the data satisfying the user's request, format that data for display with the user's browser, and return the formatted response to the browser software running on the user's computer.
This is an example of a client-server model of computing, where the machine at which the user requests information is referred to as the client, and the computer that locates the information and returns it to the client is the server. In the Web environment, the server is referred to as a “Web server”.
The HTTP communications protocol uses a request/response paradigm, where the electronic messages sent between communicating computers can be categorized as either requests for information or responses to those requests.
Content on the Internet typically is stored on server computers in individual files in the form of HTML pages. HTML (HyperText Markup Language) is a Web content formatting language specifically designed for a distributed network such as the Internet. An HTML page (or file) contains HTML code, which indicates how the information content is to be displayed as well as the actual content and/or references to other files where the content is contained. Web browser software is designed to issue page requests in the form of URLs (Universal Resource Locators). A URL essentially is an address of a file that is accessible through the Internet. The URL includes the name of the file that is being requested and the IP (Internet Protocol) address of the server on which it is to be found.
Each request is routed through one or more of the routers and switches that form the Internet to the server identified in the URL. That server then returns the requested page through the Internet to the client machine that requested it.
Web services is a term applied to application logic or application software modules that can be exposed to and shared with others over the Internet via a standardized interface mechanism. The standard paradigm on the Web is based on the exchange of files containing displayable information, e.g., Web pages. Thus, the Web services concept can be considered an extension of this paradigm to automated exchange of software modules between nodes of a network, i.e., machine-to-machine, or business-to-business interfaces. Furthermore, the receiving node can automatically set up and run the software without human intervention.
Currently, the Web services landscape is a an evolving collection of inter-related standards and implementations. Presently, there is no system for aggregating all of the necessary information to fully describe, deploy and manage the life cycle of a Web service. Web services description language (WSDL) is an XML-based language that is central to the future development of the Web services paradigm. WSDL is used to describe the services a business offers and to provide a way for others to access those services via the Web (or any other network). The UDDI initiative is an XML-based registry standard by which businesses list themselves and the Web services they offer on the Internet. WSDL is one approach to describing such Web services. A key goal of the UDDI initiative is to enable companies to find each other and each other's Web services on the Internet and to make their computer systems inter-operable with each other in order to facilitate electronic commerce. The UDDI initiative allows businesses to list information about themselves, e.g., name, location, and/or the Web services they offer.
Simple object access protocol (SOAP) is an XML-based messaging protocol that enables a program running in one kind of operating system (e.g., Windows 2000) and programming language runtime environment, to communicate with another program regardless of whether it is running in the same or a different kind of operating system and/or programming language runtime environment. SOAP uses a transport protocol, such as HTTP, SMTP (Simple Mail Transport Protocol), and HTTP(R) as the mechanism for information exchange. Specifically, since HTTP and XML are generally available and, in fact, typically are pre-installed in all major operating system platforms, they provide an at-hand solution to communicating information across programs running under different operating systems. SOAP specifies how to encode XML payloads in HTTP so that a program in one computer can call another program in another computer and pass it information. It also specifies how the called program can return a response. Current Web service environments assume that each service stands alone and is bound to a single location. This adversely affects the ability of service providers to handle basic electronic commerce issues such as load balancing, work load management, charge back accounting, pay-per-use accounting, service leasing and service distribution. This, in turn, inhibits the development of robust electronic market places and severely hampers the practical implementation of the Web services paradigm.
It is an object of the present invention to provide a software construct that provides a framework for the management of a Web service.
It is another object of the present invention to provide a method and apparatus for automatically and dynamically configuring Web services across multiple network end points.
It is a further object of the present invention to provide a method and apparatus for dynamic, adaptive deployment, management, discovery, and/or publication of Web services.
It is yet a further object of the present invention to provide a method and apparatus for dynamically reconfiguring Web services infrastructure based upon context.